<?php
/**********************************************
* 파일명: exec.php
* 설  명: 스킨파일의 폴더 생성-삭제, 파일 수정-삭제 등의 기능을 실행합니다.
***********************************************/
include "lib.php";
$edit_file ="";

$fn = !empty($_GET['fn'])?$_GET['fn']:""; 								//삭제할 파일명
$dir = !empty($_GET['dir'])?$_GET['dir']:"";							//생성할 스킨폴더 이름
$deldir = !empty($_GET['deldir'])?$_GET['deldir']:"";				//삭제할 스킨폴더 이름
$subdir = !empty($_GET['subdir'])?$_GET['subdir']:""; 			//생성할 스킨하위폴더 
if (!empty($_POST['edit_file'])){											//수정할 파일명
	$edit_file =$_POST['edit_file'];
}
if (!empty($_GET['edit_file'])){
	$edit_file =$_GET['edit_file'];
}

$skin   = !empty($_GET['skin'])?$_GET['skin']:"";						//스킨폴더명

if($fn != ''){
	$id = $_GET['id'];

	if(substr($fn, 0,6) != "/skin/" || !file_exists(ROOT.$fn)) 
		TT_SkinManagerErrorMsg(pluginLang::plts('파일이 존재하지 않습니다'));
	$rst = unlink(ROOT.$fn);
	if ($rst){
	?>
	<SCRIPT LANGUAGE="JavaScript">
	<!--
	parent.document.getElementById('<?php echo $id;?>').innerHTML ='<center><BR /><font color=gray>deleted</font></center>';
	//-->
	</SCRIPT>
	<?php
	exit;
	}
}

if($dir != ''){

	if(!preg_match('/^[a-zA-Z0-9_]+$/', $dir)){
		echo "3";		
		exit;
	}

	$skindir = ROOT."/skin/".str_replace(" ","_",$dir);
	$skinimgdir = $skindir ."/images";
	if(!is_dir($skindir)){
		$rst = mkdir($skindir);
		@chmod($skindir, 0777);		
		if($rst){
			mkdir($skinimgdir);
			@chmod($skinimgdir, 0777);
			echo "1";
		}else{
			echo "0";		
		}
	}else{
		echo "2";
	}
		exit;
}

if($subdir !=""){

	if(!preg_match('/^[a-zA-Z0-9_]+$/', $subdir)){
		echo "0";		
		exit;
	}

	$motherdir = $_GET['curdir'];
	$mkdir = ROOT."/skin/".$motherdir."/".str_replace(" ","_",$subdir);
	if(!is_dir($mkdir)){
		$rst = mkdir($mkdir);
		@chmod($mkdir, 0777);		
		if($rst) echo "1";
		else echo "0";
	}
	exit;
}

if($deldir != ''){

	if (substr($deldir, 0,6) != "/skin/"){
		die("0");
	}
	$tmp= split("/",$deldir);
	$skinname = $tmp[2];
	if($service['skin'] == $skinname){
		echo("2");
		exit;
	}

	if($skinuse = DBquery::queryRow("select * FROM {$database['prefix']}SkinSettings where skin='$skinname'")){
		echo("3");
		exit;
	}
	$deldir = ROOT.$deldir;
	if(is_dir($deldir)){
		TT_SkinManagerDeletefolder($deldir."/");
		$rst = rmdir($deldir);
		if($rst){
			echo "1";
		}else{
			echo "0";		
		}	
	}
	exit;
}


if($edit_file !='' ){

	$content = trim($_POST['content']);
	if (substr($edit_file, 0,6) != "/skin/"){
		TT_SkinManagerErrorMsg(pluginLang::plts('파일이 존재하지 않습니다.'));
	}
	if ($content == ""){
		TT_SkinManagerErrorMsg(pluginLang::plts('파일에 저장할 내용이 없습니다.'));
	}
	$edit_file = ROOT.$edit_file;
	if (is_file($edit_file) ){
		chmod ($edit_file, 0777);
	}
	if (is_writable($edit_file)) {

		if (!$handle = fopen($edit_file, 'w')) {
			 echo "Cannot open file ($edit_file)";
			 exit;
		}

		if (fwrite($handle, $content) === FALSE) {
			echo "Cannot write to file ($edit_file)";
			exit;
		}
	
		fclose($handle);
?>
	<SCRIPT LANGUAGE="JavaScript">
	<!--
		alert("<?php echo pluginLang::plts('저장되었습니다');?>");
	//-->
	</SCRIPT>
<?php
	} else {
		echo "The file $edit_file is not writable";
?>
	<SCRIPT LANGUAGE="JavaScript">
	<!--
		alert("<?php echo pluginLang::plts('쓰기 권한이 없습니다');?>");
	//-->
	</SCRIPT>
<?php
	}
}
?>
